This invention relates to electronic devices and, more particularly, to electronic devices with a signal transmitting circuit and a signal receiving circuit.
Signal transmission and reception is the basis for communication between circuits within electronic devices as well as between circuits within different electronic devices. For example, systems involving wireline protocols such as Ethernet or Interlaken may be used to send information from one electronic device to another electronic device whereas arithmetic operations performed by an electronic device may involve the flow of information between processing stages on the electronic device. In both cases, situations frequently arise where the signal receiving circuit is momentarily not ready to accept additional data and needs to communicate this information to the signal transmitting circuit so that it momentarily suspends the transmission of new data.
Conventional architectures have addressed this issue by broadcasting a hold instruction to the signal transmitting circuit. The signal transmitting circuit then puts the signal transmission on hold for discrete clock cycles at a time. For example, the signal transmission may be disabled completely by interrupting the clock signal. Other architectures may choose to continue transmitting data and handle the pause request from the receiving circuit by introducing unused cycles of data into the transmitted signals. This is problematic for various reasons. For example, the failure of the transmitting circuit to stop sending data at the right time is a common source of incorrect behavior. The receiving circuit may receive data while it is not ready if the signal transmission interruption occurs too late, effectively leading to a loss of data. Alternatively, the receiving circuit may receive and process invalid data if the signal transmission interruption occurs too early, effectively leading to incorrect behavior in the receiving circuit.
A situation may also arise where the signal receiving circuit processes the incoming data faster than the transmitting circuit sends new data. The signal receiving circuit will then be idle until new data is sent by the signal transmitting circuit.